// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

package com.fowo.api.entity;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fowo.api.common.annotaion.*;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

/**
 * WarehouseBin
 */
@DS("ds24")
@Getter
@Setter
@TableName(value = "warehouse_bin", autoResultMap = true)
@Schema(title = "仓位")
public class WarehouseBin implements Serializable {

  /**
   * 所属仓库
   */
  @TableField(value = "`parent_warehouse`")
  @JoinField(Warehouse.class)
  @Schema(title = "所属仓库")
  private Long parentWarehouse;

  /**
   * 编号
   */
  @TableField(value = "`id`")
  @TableId(type = IdType.ASSIGN_ID)
  @Schema(title = "编号")
  private Long id;

  /**
   * 仓库id
   */
  @TableField(value = "`warehouse_id`")
  @JoinField(Warehouse.class)
  @Schema(title = "仓库id")
  private Long warehouseId;

  /**
   * 仓位
   */
  @TableField(value = "`storage_bin`")
  @Schema(title = "仓位")
  private String storageBin;

  /**
   * 创建时间
   */
  @TableField(value = "`create_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "创建时间")
  private java.util.Date createTime;

  /**
   * 创建人
   */
  @TableField(value = "`create_user`")
  @Schema(title = "创建人")
  private Long createUser;

  /**
   * 更新时间
   */
  @TableField(value = "`last_update_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "更新时间")
  private java.util.Date lastUpdateTime;

  /**
   * 更新人
   */
  @TableField(value = "`last_update_user`")
  @Schema(title = "更新人")
  private Long lastUpdateUser;

  /**
   * 删除标记
   */
  @TableField(value = "`del_flag`")
  @TableLogic
  @Schema(title = "删除标记")
  private Boolean delFlag;

  /**
   * 总容量
   */
  @TableField(value = "`capacity`")
  @Schema(title = "总容量")
  private Long capacity;

  /**
   * 剩余容量
   */
  @TableField(value = "`surplus_capacity`")
  @Schema(title = "剩余容量")
  private Long surplusCapacity;

  /**
   * 仓位状态 (1 - 启用; 2 - 关闭; )
   */
  @TableField(value = "`status`")
  @Schema(title = "仓位状态")
  private String status;

  /**
   * sku种类上限
   */
  @TableField(value = "`available_sku`")
  @Schema(title = "sku种类上限")
  private Integer availableSku;

  /**
   * 已经绑定的数量
   */
  @TableField(value = "`used_quantity`")
  @Schema(title = "已经绑定的数量")
  private Integer usedQuantity;

  /**
   * 仓位类型
   */
  @TableField(value = "`type`")
  @Schema(title = "仓位类型")
  private String type;

  /**
   * 使用状态 (0 - 被占用; 1 - 可回收; 2 - 可分配; )
   */
  @TableField(value = "`use_type`")
  @Schema(title = "使用状态")
  private String useType;

  /**
   * 系统仓位 (0 - 系统; 1 - 其他; )
   */
  @TableField(value = "`sys_type`")
  @Schema(title = "系统仓位")
  private String sysType;

  /**
   * 仓库编码
   */
  @TableField(value = "`warehouse_code`")
  @Schema(title = "仓库编码")
  private String warehouseCode;
}
